package com.kerbores.wx.api.impl;

import com.kerbores.wx.api.WxHandler;
import com.kerbores.wx.bean.WxInMsg;
import com.kerbores.wx.bean.WxOutMsg;
import com.kerbores.wx.utils.Wxs;

public abstract class AbstractWxHandler implements WxHandler {

	@Override
	public WxOutMsg text(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg image(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg voice(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg video(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg location(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg link(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventSubscribe(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventUnsubscribe(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventScan(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventLocation(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventClick(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventView(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventTemplateJobFinish(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg defaultMsg(WxInMsg msg) {
		return Wxs.respText(null, "haha -> " + msg.getCreateTime());
	}

	@Override
	public WxOutMsg handle(WxInMsg in) {
		return Wxs.handle(in, this);
	}

	@Override
	public WxOutMsg eventScancodePush(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventScancodeWaitMsg(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventScancodePicSysphoto(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventScancodePicPhotoOrAlbum(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventScancodePicWeixin(WxInMsg msg) {
		return defaultMsg(msg);
	}

	@Override
	public WxOutMsg eventLocationSelect(WxInMsg msg) {
		return defaultMsg(msg);
	}
}
